<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    
    <link rel="stylesheet" href="https://jamesfengcao.gitee.io/uweb/style.css" type="text/css" />
    <title>利用文件预处理预览/查看/播放一切可下载资源</title>
  </head>
  <body>
    <header class='header'>
      <a class="logo" href="..">⟰</a> <a class="logo" href="https://jamesfengcao.gitee.io/uweb//tags/">Tags</a>
      <nav>
      </nav>
    </header>
    
<div class="container">
  <h1 class="title">利用文件预处理预览/查看/播放一切可下载资源
    <br>
    <span class="subtitle"></span>
  </h1>
  <ul class="tags">
    
    <li><a href="https://jamesfengcao.gitee.io/uweb/tags/termux">termux</a> </li>
    
    <li><a href="https://jamesfengcao.gitee.io/uweb/tags/curl">curl</a> </li>
    
  </ul>
  <p>技巧等级：中级</p>
<p>文件预处理配置文件为/sdcard/uweb/default.filecap，每行格式如下：<br>
[文件后缀]:[mimetype]:[处理命令]</p>
<p>其中文件后缀可允许最多两段后缀，譬如&quot;txt.xz&quot;,&quot;html.gz&quot;。<br>
mimetype表示命令处理后的输出内容格式。<br>
处理命令与<a href="../cmd">default.cmds</a>相同，主要可能用到如下替换：<br>
%u（网址或文件路径）、%U（编码以后的网址）、%c（当前网址cookie）、%p（密码保护网站中的密码，curl格式）。</p>
<p>利用文件预处理，<a href="..">超微浏览器</a>现在可以预览/查看/播放一切可下载资源，并且可以利用不同网站在线服务预览不同的文件，而手机上一个应用都不用装。</p>
<p>配置/sdcard/uweb/default.filecap如下：</p>
<pre><code>txt:text/html:curl %p "%u"
mp3:text/html:echo '&lt;audio controls width=100% height=100%>&lt;source src="%u">&lt;/audio>'
m4b:text/html:echo '&lt;audio controls width=100% height=100%>&lt;source src="%u">&lt;/audio>'
m3u8:text/html:echo '&lt;video controls width=100% height=100%>&lt;source src="%u">&lt;/video>'
mp4:text/html:echo '&lt;video controls width=100% height=100%>&lt;source src="%u">&lt;/video>'
mkv:text/html:echo '&lt;video controls width=100% height=100%>&lt;source src="%u">&lt;/video>'
doc::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
xls::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
ppt::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
docx::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
xlsx::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
pptx::am start --user 0 -a android.intent.action.VIEW -d 'https://view.officeapps.live.com/op/view.aspx?src=%U'
xz:text/plain:curl %p "%u"|xz -d --</code></pre>
<p>长按窗口按钮，勾选“文件预处理”，重启浏览器。则点击下载按钮时上述文件类型会自动预览。</p>
<p>如果用户配置中处理命令用到curl，则需要安装<a href="../gnuplot">Termux</a>，并在Termux中安装curl (&quot;apt install curl&quot;)。<br>
如果用户不安装Termux，则上述配置命令中的&quot;am&quot;需要全部路径，需用&quot;/system/bin/am&quot;替换。</p>
<p>以上配置使用了微软服务预览office文档，微软服务必需当前UA为PC，否则会出现空白页面。有条件的用户建议使用google docs (&quot;http://docs.google.com/gview?embedded=true&amp;url=&quot;) 服务替换。</p>
<p>若使用手机应用预览文件，则docx处理命令可改为：</p>
<pre>am start --user 0 -a android.intent.action.VIEW -d "%u" -t "application/docx"</pre>
<p>其余常见文件的类型名：<br>
application/msword<br>
application/msexcel<br>
application/pdf</p>
<p>目前已知服务：<br>
google docs, 功能强大，可查看几乎一切文档，但 &quot;我的所爱在山腰，想要得到山太高。&quot;</p>
<p>微软office, 可预览office文档，ua必须是pc。</p>

</div>

  </body>
</html>
